package com.qzsoft.zhjd.asphalt.modules.asphaltdatasieve.mapper;

import java.util.List;
import java.util.Map;

import com.qzsoft.zhjd.asphalt.modules.asphaltdatasieve.dto.AsphaltDataSievingAvgDto;
import com.qzsoft.zhjd.asphalt.modules.asphaltdatasieve.dto.AsphaltDataSievingDto;
import com.qzsoft.zhjd.asphalt.modules.asphaltdatasieve.dto.ProduceSievePassRateDto;
import com.qzsoft.zhjd.asphalt.modules.asphaltdatasieve.entity.AsphaltDataSieveEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;

/**
 * @ClassName AsphaltDataSieveMapper
 * @Description 筛孔数据库接口
 * @author linhuawei
 * @since 2021-12-04
 */
@Mapper
public interface AsphaltDataSieveMapper extends BaseMapper<AsphaltDataSieveEntity> {

    /**
     * @Title queryDto
     * @Description 筛孔数据分页
     * @param page   分页条件
     * @param params 查询条件
     * @return 筛孔数据分页
     */
    public IPage<AsphaltDataSievingDto> queryDto(IPage<AsphaltDataSievingDto> page,
                                                 @Param("params") Map<String, Object> params);

    /**
     * @Title produceSievePassRate
     * @Description 关键筛孔通过率
     * @param params 查询条件
     * @return 关键筛孔通过率
     */
    public List<ProduceSievePassRateDto> produceSievePassRate(@Param("params") Map<String, Object> params);

    /**
     * @Title sievingAvg
     * @Description 获取筛孔平均值
     * @param params 查询条件
     * @return 筛孔平均值
     */
    public AsphaltDataSievingAvgDto sievingAvg(@Param("params") Map<String, Object> params);

    /**
     * @Title listForDay
     * @Description 获取全天筛孔数据
     * @param stationCode 拌和站编号
     * @param matchCode   级配编号
     * @param day         日期
     * @return 全天筛孔数据
     */
    public List<AsphaltDataSieveEntity> listForDay(@Param("stationCode") String stationCode,
            @Param("matchCode") String matchCode, @Param("day") String day);

    /**
     * @Title avgForDay
     * @Description 获取全天筛孔平均值
     * @param stationCode 拌和站编号
     * @param matchCode   级配编号
     * @param day         日期
     * @return 全天筛孔平均值
     */
    public AsphaltDataSievingAvgDto avgForDay(@Param("stationCode") String stationCode,
            @Param("matchCode") String matchCode, @Param("day") String day);

}
